package cn.itcast.nems.approval.dao.mapper;

import cn.itcast.nems.approval.dao.entity.ApprovalForm;
import cn.itcast.nems.studentrecord.dao.dataobject.ApprovalFormQueryModel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.lang.NonNull;

import java.util.Collection;
import java.util.List;

@Mapper
public interface ApprovalFormMapper extends BaseMapper<ApprovalForm> {
    /**
     * 根据凭单类型
     *
     * @param journalType  凭单类型
     * @param accountEmail 账户邮箱
     * @return java.util.List<cn.itcast.nems.approval.dao.entity.ApprovalForm>
     * @author 高昌露
     * @since 2023/11/29 14:33
     */
    List<ApprovalForm> getMyApprovedForms(@NonNull @Param("journalType") String journalType,
                                          @NonNull @Param("accountEmail") String accountEmail);

    /**
     * <p>
     * 查询待办审批单
     * </p>
     *
     * @param queryModel 查询条件
     * @return 审批单列表 （ID）
     * @author zhouwei
     * @since 2024/1/16 6:00 PM
     **/
    List<ApprovalForm> getWaitApprovalFormList(@Param("param") ApprovalFormQueryModel queryModel) ;

    List<ApprovalForm> findNewestFormByJournalIds(@Param("journalIds") Collection<String> journalIdSet);

    List<String> getFormIDs(@Param("formID") String formID);


    /**
     * 修改流程审批单描述信息
     *
     * @param formId  流程审批单ID
     * @param formDescription 描述消息
     * @author 李勇
     * @since 2024年04月02日
     */
    void updateFormDescription(@Param("formId") final String formId,
                               @Param("formDescription") final String formDescription);
}
